home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 018a / amac41.zip / TIMER14.QM < prev    next >
Text File  |  1991-08-26  |  26KB  |  600 lines

  1. *                           TIMER14.QM, v1.4b
  2. *                 Macros To Time QEdit Command Sequences
  3. *                        Written by Tom Hogshead
  4. *                                8/15/91
  5. *  Key    Subfile      Standard Timing Techniques
  6. * =====  =========  =====================================================
  7. * @(1)    {e:\up\tim001}
  8. *                 --Times Macro Command Sequences For 1 To 100,000 Repeats
  9. *                   (Inserted) In @1 Using [Del_Ch] Timing Counter
  10. * @(2)    {e:\up\tim002}
  11. *                 --Times Macro Command Sequences For ONE Repeat Only
  12. *                   (Inserted_In) @2
  13. *
  14. *  Key    Subfile      Other Timing Techniques
  15. * =====  =========  =====================================================
  16. * @(q)    {e:\up\tim003}
  17. *                 --Times Macro Command Sequences For ONE Repeat Only,    |new
  18. *                   Simple, Quick And Foolproof!
  19. * @(r)    {e:\up\tim004}
  20. *                 --Times Macro Command Sequences For 1 To 100,000 Repeats|new
  21. *                   Using [Cursor_Right] Timing Counter
  22. * @(p)    {e:\up\tim005}
  23. *                 --Times Macro Command Sequences For 1 To 100,000 Repeats|new
  24. *                   Using [Command n] Timing Counter
  25. * @(n)    {e:\up\tim006}
  26. *                 --Makes Files Needed For @1/@p/@r
  27. *       Misc
  28. *      ------
  29. *      (Description)
  30. *      (Timing) Loop Description
  31. *      (Usage)
  32. *      (Base) Time For Your System, How To Measure
  33. *      (Comparison) of 6/29/91 (v1.1) and 7/7/91 (v1.2) Base Time
  34. *      (Example), "CursorRight CursorLeft" Timing
  35. *      (Other) Commands' Timing
  36. *      (Calculating) Run Time
  37. *      (Accuracy) / Repeatability
  38. *      (TSR) Interference
  39. *      (Requirements) For Timing Macro Command Sequences
  40. *      (Hardware)
  41. *      (Software)
  42. *      (Allocated) Memory Map
  43. *      (QCONFIG) Setup
  44. *
  45. *      (Locate) Macros and Index Items in File, How To Jump To
  46. *      (AMACxx).ZIP
  47. *      (Uploaded) sources for AMACxx
  48. *      (Problems) or suggestions?
  49. *
  50. *      (M) A C R O S
  51. *      (Version) History
  52. *
  53. *-- eoi
  54.  
  55. * 
  56. *  (Description)
  57. *  ---------------
  58.  
  59. *   TIMER14.QM are macros enabling the user to measure execution time
  60. *   of QEdit macro command sequences with unparalleled accuracy and
  61. *   versatility.  Timing macro commands provides the capability to
  62. *   optimize macros for speed. Relative speed of many commands are
  63. *   compared.  The number of repeats can be timed from 1 to 100,000 for
  64. *   different command sequences.
  65.  
  66. *   My conclusions are based only on the timing tests I conducted with
  67. *   specific command sequences. I am not attempting to make a
  68. *   determination of the absolute speed of QEdit. Although limited by
  69. *   my inability to measure any command's speed without some synergism
  70. *   with other commands and the testing system, I believe these
  71. *   conclusions, as they relate to speeds of specific command sequences
  72. *   timed, are accurate and valid in this necessarily limited context.
  73.  
  74. * 
  75. *  (Timing) Loop Description
  76. *   --------------------------
  77.  
  78. *   Macro @1 uses the following timing loop with Del_Ch as the timing
  79. *   mechanism or counter:
  80.  
  81. *           make block of characters = number of repeats up to 100,000
  82. *           InsertTime      (start time)
  83. *           TIME:
  84. *         < commands to time inserted here >
  85. *           Del_Ch
  86. *           jtrue TIME:
  87. *           cursorup
  88. *           jtrue TIME:
  89. *           InsertTime      (end time)
  90.  
  91. *   Command sequences to be timed are first inserted by the user into
  92. *   the macro timing loop just prior to Del_Ch. After compiling the
  93. *   macro with QMAC, the macro first makes and fills a block with 500
  94. *   characters / line until the total number of characters equals the
  95. *   user selected number of repeats (From 1 to 100,000 repeats).
  96.  
  97. *   Timing begins when the timing loop is entered. The cursor remains
  98. *   in column 1 deleting characters until Del_Ch tests false signifying
  99. *   the 500 characters in the last line of the block have been deleted.
  100. *   The macro then cursors up one line and begins deleting characters
  101. *   in that line starting in column 1. The timing loop continues until
  102. *   cursorup tests false indicating all characters in the block have
  103. *   been deleted, and timing ends.
  104.  
  105.  
  106. * 
  107. *  (Usage)
  108. *  ---------
  109.  
  110. *   To measure execution time of QEdit macro commands, the desired
  111. *   command sequences to time are first inserted by the user into a
  112. *   either @1 or @2.  The macro is then compiled using QMAC.
  113.  
  114. *   Macro time is then calculated in seconds by subtracting start time
  115. *   from end time as measured and reported by InsertTime. Time for
  116. *   the inserted command sequences is calculated by first subtracting
  117. *   "Base" time from "macro" time, and then dividing the resulting
  118. *   "commands" time by the number of user selected repeats. This gives
  119. *   a precise timing measurement significant to 0.000001 seconds for
  120. *   100,000 repeats. I was unable to come up with any other practical
  121. *   way to accurately time the many fast commands like cursorright,
  122. *   delch etc:
  123.  
  124. *       Macro Time      = End Time      - Start Time
  125.  
  126. *       Commands Time   = Macro Time    - Base Time
  127.  
  128. *       Commands Time   = End Time      - Start Time - Base Time
  129.  
  130. *       Commands Time/  = Commands Time / Number of Repeats
  131. *          Per Repeat
  132.  
  133. *   See Example for calculating time for [ cursorright cursorleft ].
  134.  
  135. * 
  136. *   Measuring (Base) Time For Your System
  137. *  ---------------------------------------
  138.  
  139. *       1.  Load a file for macro timing output.
  140.  
  141. *       2.  Read TIMER14.MAC:
  142.  
  143. *               <escape>
  144. *                MR
  145. *                TIMER14.MAC
  146. *               <enter>
  147.  
  148. *       3.  Run macro @1 without any inserted commands by pressing
  149. *           the Alternate key and 1 at the same time.
  150.  
  151. *       4.  At the first prompt, answer "Y <enter>", meaning the
  152. *           macro will cycle until Control Break Escape is pressed.
  153.  
  154. *       5.  At the second prompt, cursor down to the line beginning
  155. *           with "100k", meaning the macro will time 100,000 repeats,
  156. *           and press <enter>.
  157.  
  158. *       6.  After the macro runs for 10 cycles (010 in the last
  159. *           column of the output) press Control Break Escape.  Be
  160. *           patient, this will take some time (4 minutes per cycle on
  161. *           my machine).  You are now ready to calculate the macro
  162. *           "Base" time for your system. It is important to measure
  163. *           this accurately because "Base" Time is used in ALL
  164. *           subsequent timings:
  165.  
  166. *  Cycle number                   ──────────────────────────────────┐
  167. *  Number of repeats (k=1,000)    ─────────────────────────────┐    │
  168. *  Macro       ─────────────────────────────────────────────┐  │    │
  169. *  Date        ───────────────────────────────────────┐     │  │    │
  170. *  End time    ──────────────────────────────┐        │     │  │    │
  171. *  Start time  ───────────────────────┐      │        │     │  │    │
  172. *  End - Start ──────┐                │      │        │     │  │    │
  173. *                   252        * 16:58:40  02:52  06-23-91 @1 100k 010
  174. *                   252        * 16:54:25  58:37  06-23-91 @1 100k 009
  175. *                   252        * 16:50:09  54:21  06-23-91 @1 100k 008
  176. *                   252        * 16:45:53  50:05  06-23-91 @1 100k 007
  177. *                   251        * 16:41:38  45:49  06-23-91 @1 100k 006
  178. *                   252        * 16:37:22  41:34  06-23-91 @1 100k 005
  179. *                   251        * 16:33:07  37:18  06-23-91 @1 100k 004
  180. *                   252        * 16:28:51  33:03  06-23-91 @1 100k 003
  181. *                   251        * 16:24:36  28:47  06-23-91 @1 100k 002
  182. *                   252        * 16:20:20  24:32  06-23-91 @1 100k 001
  183. *                  -----
  184. *   Total     =    2517 seconds
  185.  
  186. *   Base Time =    2517 seconds for 1,000,000 repeats
  187.  
  188. *             =    0.002517      ( seconds / repeat )
  189.  
  190. *                           -- Base Time --
  191. *            # of Repeats     ( seconds )
  192. *           ==============  ===============
  193. *                 ½k              1.3
  194. *                 1k              2.5
  195. *                 5k             12.6
  196. *                10k             25.2
  197. *                25k             63.0
  198. *                50k            126.0
  199. *               100k            252.0
  200.  
  201. *   Base Time is proportional to the number of repeats, and may be
  202. *   calculated for different "number of repeats" from 100k Base Time.
  203.  
  204. *  (Comparison) of 6/29/91 (v1.1) and 7/7/91 (v1.2) Base Time
  205. *  ------------------------------------------------------------
  206. *
  207. *  Cycle number                   ──────────────────────────────────┐
  208. *  Number of repeats (k=1,000)    ─────────────────────────────┐    │
  209. *  Macro       ─────────────────────────────────────────────┐  │    │
  210. *  Date        ───────────────────────────────────────┐     │  │    │
  211. *  End time    ──────────────────────────────┐        │     │  │    │
  212. *  Start time  ───────────────────────┐      │        │     │  │    │
  213. *  End - Start ──────┐                │      │        │     │  │    │
  214. *                   252        * 00:57:56  02:08  07-08-91 @1 100k 010
  215. *                   252        * 00:53:38  57:50  07-08-91 @1 100k 009
  216. *                   252        * 00:49:20  53:32  07-08-91 @1 100k 008
  217. *                   252        * 00:45:02  49:14  07-08-91 @1 100k 007
  218.                     251        * 00:40:45  44:56  07-08-91 @1 100k 006
  219. *                   252        * 00:36:27  40:39  07-08-91 @1 100k 005
  220. *                   252        * 00:32:10  36:22  07-08-91 @1 100k 004
  221. *                   252        * 00:27:53  32:05  07-08-91 @1 100k 003
  222. *                   251        * 00:23:37  27:48  07-08-91 @1 100k 002
  223. *                   250        * 00:19:21  23:31  07-08-91 @1 100k 001
  224. *                  -----
  225. *   Total     =    2516 seconds
  226.  
  227. *   Base Time =    2516 seconds for 1,000,000 repeats, 7/7/91  version 1.2,
  228. *   compared to    2517 seconds for 1,000,000 repeats, 6/28/91 version 1.0. |
  229.  
  230. * 
  231. *  (Example), "CursorRight CursorLeft" Timing
  232. *  --------------------------------------------
  233. *   To measure execution time of "CursorRight CursorLeft":
  234.  
  235. *       1. Insert "CursorRight CursorLeft" in @1 as follows;
  236.  
  237. *                       TIME:
  238. *                       CursorRight CursorLeft  * <<<
  239. *                       Del_Ch
  240. *                       jtrue TIME:
  241.  
  242. *       2.  Compile using QMAC.
  243.  
  244. *       3.  Read TIMER14.MAC:
  245.  
  246. *               <escape>
  247. *                MR
  248. *                TIMER14.MAC
  249. *               <enter>
  250.  
  251. *       4.  Load desired file to record macro timing output.
  252.  
  253. *       5.  Execute @1 pressing Alternate key and 1 at the same time.
  254.  
  255. *       6.  At the first prompt, press <enter> for now. The macro will
  256. *           cycle once.  Alternatively, answering "Y", then <enter>,
  257. *           cycles the macro until Control Break Escape is pressed.
  258.  
  259. *       7.  At the second prompt, cursor down to the line beginning
  260. *           with "100k", meaning the macro will time 100,000 repeats
  261. *           of this command sequence, and press <enter>.
  262.  
  263. *       8.  Press Control Break Escape to stop cycling and begin
  264. *           calculations.
  265.  
  266. * 
  267. *  (Calculating) Run Time
  268. *  -----------------------
  269.                                 *******************************************
  270. *            Macro Output ==>   *  16:22:02  28:44  06-23-91 @1 100k 001  *
  271.                                 *******************************************
  272. *               6 x 60 = 360
  273. *                        +44
  274. *                       -----
  275. *                        404  start
  276. *                         -2  end
  277. *                       -----
  278. *                        402  Macro Time
  279. *                       -252  Base  Time, 100k repeats
  280. *                       -----
  281. *                        150  Net
  282.  
  283. *            "CursorRight CursorLeft" Timing
  284. *         ====================================
  285. *          Time ( seconds )         # Repeats
  286. *         ------------------       -----------
  287. *            150                     100,000
  288. *              1.50                    1,000
  289. *              0.00150                     1
  290.  
  291. * 
  292. *  (Other) Commands Timing
  293. *  -------------------------
  294. *   See TIMER.SUM for timing results of other command sequences.
  295.  
  296. * 
  297. *  (Accuracy) / Repeatability
  298. *  ----------------------------
  299. *   Accuracy, or repeatability, of calculated times (End Time minus
  300. *   Begin Time) is accurate to +/- 1 second.  Accuracy of calculated
  301. *   time per repeat may be determined as follows:
  302.  
  303. *               Accuracy = 1 / ( number of repeats)
  304.  
  305. *   For 100k repeats:
  306.  
  307. *               Accuracy = 1 / ( 100,000 ) = 0.000010 seconds
  308.  
  309. *  (TSR) Interference
  310. *  -------------------
  311. *   TSR's that interfere with timing should be removed. TSR's that do
  312. *   interfere with timing may only slow down results, but their effect
  313. *   should be consistent across tests. This effect can be seen by
  314. *   measuring my 100k Base Time with/without TSR's:
  315.  
  316. *                              Seconds       Norton
  317. *                 Setup       100k Base        SI
  318. *                ----------  -----------    --------
  319. *                 Standard        252         10.2
  320. *                 No TSR's        231         10.7
  321.  
  322. * 
  323. *  (Requirements) For Timing Macro Command Sequences With @1
  324. *  ----------------------------------------------------------
  325. *       - Commands must return cursor to the beginning of the counting
  326. *         line in file "0k" upon completion of each inserted command
  327. *         sequence.
  328.  
  329. *       - Commands must not add/delete any characters to/from
  330. *         counting line.
  331.  
  332. *       - Commands must not quit or reload any file unless QConfig is
  333. *         set to *not* close windows on quit.
  334.  
  335. *       - No TSR should access the disk or in any way effect timing.
  336.  
  337. * 
  338. *  (Hardware)
  339. *  ----------
  340. *       two Seagate 20 meg ST250 MFM hard drives, configured E: and F:
  341. *       5 1/4" 360k floppy, A:
  342. *       3 1/2" 720k floppy, B:
  343. *       Logix VGA card, 256k
  344. *       Magnavox VGA paper white monitor
  345. *       10 MHz XT clone with Everex 12 MHz Accelerator card
  346. *               Norton   v4.50   (SI)   =  10.2
  347. *                                (DI)   =   2.4
  348. *                                (PI)   =   7.6
  349. *               Landmark v2.00   (CPU)  =  10.73 MHz
  350. *                                (Video)= 520    chr/ms
  351. *       5 meg expanded memory using one AST Six Pack Plus and
  352. *         two AST Rampage Plus boards, LIM 4.0, 256k chips, 150 ns
  353.  
  354. * 
  355. *  (Software)
  356. *  ----------
  357. *       Buffers=7
  358. *       Files=25
  359. *       Break=off
  360. *       1 meg PcKwik ram disk, with 2 sub directories  C: and D:
  361. *       Software Carousel v5.00, three 509k partitions
  362. *       64k of high memory added to low ram with EEMRAM
  363. *       492,048 bytes free ram after adding 64k of expanded with EEMRAM
  364. *       PcKwik v3.52 with 1.3 meg hard disk cache
  365. *       Newkey v5.4
  366. *       PCED   v2.00(A4)
  367.  
  368. *   Other software used:
  369. *       QEdit  v2.10, ( 45,782, 9/6/90 )
  370. *       QMAC   v2.10, February 1990
  371. *       DOS    v3.3
  372.  
  373. *                          (Allocated) Memory Map
  374. * ======================================================================
  375. * MCB adr PSP adr  paras   bytes   owner        hooked vectors
  376. * ------- ------- ------- ------- ----------   -------------------------
  377. *  10d9    1002    003f     1008  (DOS)
  378. *  113b    113c    0014      320  SHFTLOCK.COM
  379. *  1172    1173    003e      992  ASTCLOCK.COM
  380. *  11ce    11cf    0021      528  DISKSHW2.COM
  381. *  1213    1214    036c    14016  SUPERPCK.COM
  382. *  159e    159f    01ad     6864  PCKSCRN.COM  29
  383. *  1769    176a    032a    12960  PCKSPL.COM   05 0f 17
  384. *  1ab1    1ab2    0016      352  NUMCLICK.COM
  385. *  1ae5    1ae6    0020      512  TIMEPARK.COM
  386. *  1b23    1b24    00d3     3376  HOTLINE.EXE
  387. *  1c14    1c15    0009      144  COLON.EXE
  388. *  1c61    1c62    0060     1536  STACKEY.COM
  389. *  1cdf    1ce0    0225     8784  QTSR.EXE     1c 2f
  390. *  1f05    1f23    80f9   528272  CAROUSEL.EXE 00 08 09 10 12 13 14
  391. *                                              15 16 1a 1b 21 27 28
  392. *                                              30 33 5c 61 66 67
  393.  
  394. * Allocated Memory Map - by TurboPower Software - Version 2.9
  395.  
  396. *  PSP  blks bytes owner    command line        chained vectors
  397. * ----- ---- ----- -------- ------------------- ------------------------
  398. * 22CE   1     144 config   j:\-A1
  399. * 22D8   2    4208 WATCH    TSR WATCHER         16 21 27
  400. * 23E6   2     880 CLICKER                      09
  401. * 241F   1    1024 SMAX                         13
  402. * 247E   1   18464 PCED 200 /X/B4000,100,260... 1B 21 61
  403. * 2901   1    5008 VSTACK   /A112;62;112
  404. * 2A3B   1    1056 SEND
  405. * 2A7E   1    1248 FL
  406. * 2ACD   1     608 CDIR 200 /X /D500
  407. * 2AF4   1     608 RAW      on                  21
  408. * 2B1B   2   39312 NEWKEY   N/A                 08 09 10 16 1B 28 66
  409. * 3498   2    5440 RUNSCOUT                     08 09 13 16 28
  410. * 35F3   1    7696 SETUP    u:\np10.pmf         09
  411. * 37D5   1     144 FMARK    j:\-end
  412. * 37DF   2  492048 free
  413.  
  414. *   block   bytes   (Expanded Memory)  Name
  415. *   -----   ------                     ----
  416. *       0   393216                     SYSTEM
  417. *       1    16384                     XPANDISK
  418. *       2  1425408                     SUPERPCK
  419. *       3    98304                     HOTLINE
  420. *       4   212992                     QEditTSR
  421. *       5    49152
  422. *       6  1458176                     CAROUSEL
  423. *       7    49152                     PCED 200
  424. *       8    32768                     CDIR 200
  425. *       9    65536                     EEMRAM
  426. *      10    49152                     NEWKEY
  427. *      11   163840                     SCOUT-EM
  428. *    free  1032192
  429. *   total  5046272
  430.  
  431. * 
  432. *  (QCONFIG) Setup
  433. * ----------------
  434. *   General
  435. *   ---------
  436. *   Test for presence of EGA or VGA adapters (Y/N)? [Y] : Y
  437. *   Test for presence of enhanced keyboard (Y/N)? [Y] : Y
  438. *   Swap to Expanded memory or DISK on the Dos and Shell commands
  439. *                                                          (Y/N)? [Y] : Y
  440. *   Drive for disk swapping on the Dos/Shell commands
  441. *                                          *=default-drive [A..Z] [J] : J
  442. *   Should QEdit change the cursor size (Y/N)? [Y] : Y
  443. *   Do you want a large flashing cursor (Y/N)? [N] : N
  444. *   Fast screen updating with flicker OK (CGA's only)(Y/N)? [N] : N
  445. *   Get num rows on screen from BIOS data area
  446. *                                        (100% IBM PC only)(Y/N)? [N] : N
  447. *   Number of rows on screen (NOT NEEDED with EGA/VGA) [25..255] [25] : 25
  448. *   Do you want the return command to split lines
  449. *                                            in insert mode (Y/N)? [Y] : Y
  450. *   Should Cut and Copy use current line if no block marked (Y/N)? [Y] : Y
  451. *   Amount of memory to reserve from DOS
  452. *                                    (in paragraphs) [0,8..32767]  [0] : 0
  453. *   Code generated by ALT numeric keypad [0..255] [0] : 0
  454. *   Do you want the ESCAPE command to invoke the menus (Y/N)? [Y] : Y
  455. *   Should the editor restore the starting drive/dir
  456. *                                          on program exit (Y/N)? [Y] : Y
  457. *   Should the editor change the DOS PROMPT during a shell (Y/N)? [Y] : Y
  458. *   Should [TabRt]/[TabLt] be allowed to shift
  459. *                                          an entire block (Y/N)? [Y] : Y
  460.  
  461.  
  462. *   Advanced
  463. *   --------
  464. *   Do you want the del_ch command to join lines if at EOL (Y/N)? [N] : N
  465. *   Should PQuit, Exit and File return to the edit
  466. *                                              file prompt (Y/N)? [N] : N
  467. *   Do you want the editor to start in wordwrap mode (Y/N)? [Y] : Y
  468. *   Default right margin for wordwrap [1..500]  [80] : 80
  469. *   Do you want the editor to start in insertmode (Y/N)? [Y] : Y
  470. *   Do you want the editor to start in autoindent mode (Y/N)? [Y] : Y
  471. *   Do you want the editor to use sticky autoindent (Y/N)? [N] : N
  472. *   Load wildcarded filespecs from the command line (Y/N)? [Y] : Y
  473. *   Load wildcarded filespecs from inside the editor (Y/N)? [Y] : Y
  474. *   Do you want the editor to start in enter matching mode (Y/N)? [N] : N
  475. *   Use CMODE for .c, .cpp, .cxx, .h, .hpp, and .hxx files (Y/N)? [Y] : Y
  476. *   Default number of deleted lines to keep per file [0..300] [100] : 100
  477. *   Remove trailing blanks from edited lines (Y/N)? [Y] : Y
  478. *   Delete white space after words with del_rt_word command (Y/N)? [Y] : Y
  479. *   Terminate files with a Control Z (Y/N)? [N] : N
  480. *   Do you want backups of saved files (Y/N)? [Y] : Y
  481. *   Prompt for filename on open window (Y/N)? [N] : N
  482. *   Close window when a file is quit (Y/N)? [Y] : Y
  483. *   Display End Of File marker (Y/N)? [Y] : Y
  484. *   Insert line blocks ABOVE the cursor line (Y/N)? [Y] : Y
  485. *   Do you want a beep on warning messages and
  486. *                                           missed searches (Y/N)? [N] : N
  487. *   Default Find options [IWBG]  [I] : I
  488. *   Default Find_Replace options [IWBNG]  [I] : I
  489. *   Default file extension number 1 [.bat] : .bat
  490. *   Default file extension number 2 [.qm] : .qm
  491. *   Default file extension number 3 [.doc] : .doc
  492. *   Default file extension number 4 [.inf] : .inf
  493. *   Default file extension number 5 [.lst] : .lst
  494. *   Default file extension number 6 [.let] : .let
  495.  
  496. * 
  497. *  (AMACxx).ZIP Sources
  498. *   --------------------
  499. *   AMACxx.ZIP is a collection of QEdit  macros I have put together. Many
  500. *   I   have   written,  and  John   Goodman  has   recently  contributed
  501. *   extensively to this  effort.  As of this  writing, the latest version
  502. *   is xx=38 with new macros and subsequent changes in  AMAC-x.ZIP(x = K)
  503. *   Program files used with these  macros are in AMAC-PRG.ZIP. AMACxx.ZIP
  504. *   is (uploaded) to   CompuServe IBMAPP Lib  0  (Lib 1  after 30 days in
  505. *   Lib 0), Exec-PC  (414-789-4210), and SemWare  (404-641-8968). All are
  506. *   PC "Pursuitable" except CompuServe.
  507.  
  508. * 
  509. *  (Problems) or suggestions?
  510. *   --------------------------
  511. *   Any problems  or suggestion,  I would like to  hear from  you.  I can
  512. *   be reached daily on  either SemWare,  Exec-PC  or  NewWare.   I check
  513. *   CompuServe only once a month.  I will also try to include your useful
  514. *   macros in AMAC  if you send them to me.  Hope you  find some of these
  515. *   macros useful.  I have enjoyed writing them.  Thanks.
  516.  
  517. *   Tom Hogshead
  518.  
  519. *  (Locate) Macros and Index Items in File, How To Jump To
  520. * ---------------------------------------------------------
  521. *   See BOOKxx.QM for how to locate items in Index.
  522.  
  523. * 
  524.                               (M) A C R O S
  525. * ========================================================================
  526.  
  527. * 
  528. * -------------------------------------------------------------------------
  529. * @(1)  Times Macro Command Sequences For 1 To 100,000 Repeats
  530. * -------------------------------------------------------------------------
  531. * See tim001.QM for macro.  Use @f to jump to macro.
  532.  
  533.  
  534. * 
  535. * ----------------------------------------------------------------------
  536. * @(2) Measures Running Time of Macro Command Sequences, ONE Repeat Only
  537. * ----------------------------------------------------------------------
  538. * See tim002.QM for macro.  Use @f to jump to macro.
  539.  
  540.  
  541. * 
  542. * ----------------------------------------------------------------------
  543. * @(q)  Times Macro Command Sequences For ONE Repeat Only,
  544. *       Simple and Quick!
  545. * ----------------------------------------------------------------------
  546. * See tim003.QM for macro.  Use @f to jump to macro.
  547.  
  548.  
  549. * 
  550. * -------------------------------------------------------------------------
  551. * @(r)  Times Macro Command Sequences For 1 To 100,000 Repeats
  552. * -------------------------------------------------------------------------
  553. * See tim004.QM for macro.  Use @f to jump to macro.
  554.  
  555. * 
  556. * -------------------------------------------------------------------------
  557. * @(p)  Times Macro Command Sequences For 1 To 100,000 Repeats
  558. *       Using [command n] Timing Counter
  559. * -------------------------------------------------------------------------
  560. * See tim005.QM for macro.  Use @f to jump to macro.
  561.  
  562.  
  563. * 
  564. * ----------------------------------------------------------------------
  565. * @(n) Makes Files: Sequential Line Number File (001-999),  < $line#  >
  566. *                 : Zero Length File for Counting,          < 0k      >
  567. *                 : File to Select Number of Repeats/Cycle, < $repeat >
  568. * ----------------------------------------------------------------------
  569. * See tim006.QM for macro.  Use @f to jump to macro.
  570.  
  571. * 
  572. *  (Version) History
  573. *   --------------------------------------------------------------------
  574. *   June 29, 1991   1.0  -  Initial, named  TIME10.QM
  575. *   July 2, 1991    1.1  -  Changed name to TIMER, minor documentation
  576. *                           changes, added @n.  First release of TIMERxx.ZIP.
  577. *   July 7, 1991    1.2  -  Added timing loop description to documentation.
  578. *                        -  Moved makectrofscreen in @h down.
  579. *                        -  Changed ONE_CYCLE: to ONE_REPEAT: in @1.
  580. *                        -  Removed extra space from "@1 " in @1.
  581. *                        -  Added insertline to @2.
  582. *                        -  Added 1/5/50/100 repeats to @1 and @n.
  583. *                        -  Changes in this version do not affect timing.
  584. *   July 8, 1991    1.3  -  Corrected documentation.
  585. *   July 11, 1991   1.3a -  Added latest version of @h.
  586. *   July 14, 1991   1.3b -  Added other timing techniques @p and @r.
  587. *   July 19, 1991   1.3c -  Added @q for simple, quick and foolproof timing
  588. *                           one repeat.
  589. *   July 21, 1991   1.4  -  Made macros separate files tim001...tim006.
  590. *                        -  Replaced @h with @f.
  591. *                         - Included v1.4 in AMAC39.ZIP.
  592. *   July 27, 1991   1.4a -  Minor Documentation changes.
  593. *                        -  Removed @f.  Now in BOOKxx.QM only.
  594. *                         - Included v1.4a in AMAC40.ZIP.
  595. *   August 15, 1991 1.4b -  Removed @f once again.
  596. *
  597. *
  598. *
  599. *
  600.